package com.liu.utils;

/**
 * @author Mr.Liu
 * @version 1.0
 * @date 2024/8/4 22:14
 */
public class MyStringUtils {

    /**
     * 第一个字符大写
     * @param str
     * @return
     */
    public static String capitalizeFirstChar(String str) {
        if (str == null || str.isEmpty()) {
            return str;
        }
        char firstChar = Character.toUpperCase(str.charAt(0));
        String remainingChars = str.substring(1);

        return firstChar + remainingChars;
    }

    /**
     * 将第一个字符转小写
     * @param str
     * @return
     */
    public static String toLowerFirstChar(String str) {
        if (str == null || str.isEmpty()) {
            return str;
        }
        char firstChar = str.charAt(0);
        if (Character.isUpperCase(firstChar)) {
            firstChar = Character.toLowerCase(firstChar);
        }
        return new StringBuilder()
                .append(firstChar)
                .append(str.substring(1))
                .toString();
    }


    /**
     * 转驼峰命名
     * @param str
     * @param first 第一个单词是否大写
     * @return
     */
    public static String toCamelCase(String str , boolean first){
        if (str == null || str.isEmpty()) {
            return str;
        }
        String[] s = str.split("_");
        StringBuffer result = new StringBuffer(); //转换后的类名
        if(first){
           result.append(MyStringUtils.capitalizeFirstChar(s[0]));
        }else{
            result.append(s[0]);
        }
        for(int ii = 1 ; ii < s.length ; ii++){
            result.append(MyStringUtils.capitalizeFirstChar(s[ii]));
        }
        return result.toString();
    }


}
